package com.wenx.v3system.modular.platform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wenx.base.rest.BaseRestService;
import com.wenx.v3system.modular.platform.domain.dto.PlatformRoleDto;
import com.wenx.v3system.modular.platform.domain.po.PlatformRole;
import com.wenx.v3system.modular.platform.domain.query.PlatformRoleQuery;
import com.wenx.v3secure.enums.PlatformRoleType;

import java.util.List;

/**
 * 平台角色服务接口
 * 参考rbac模块风格重构
 * 
 * @author wenx
 */
public interface PlatformRoleService extends BaseRestService<PlatformRoleDto, PlatformRoleQuery> {

    /**
     * 获取所有角色（包括内置角色和自定义角色）
     */
    List<PlatformRoleDto> getAllRoles();

    /**
     * 获取内置角色列表
     */
    List<PlatformRoleDto> getBuiltinRoles();

    /**
     * 获取自定义角色列表
     */
    List<PlatformRoleDto> getCustomRoles();

    /**
     * 根据角色代码获取角色
     */
    PlatformRoleDto getRoleByCode(String code);

    /**
     * 检查角色代码是否存在
     */
    boolean checkCodeExists(String code, Long excludeId);

    /**
     * 批量根据角色ID获取角色代码
     */
    List<String> getRoleCodesByIds(List<String> roleIds);
}